import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        /*int a = 54;
        int b = 20;
        int c = 45;
       System.out.println(sum(a,b,c));*/


        /*Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数：");
        int s = scanner.nextInt();
        System.out.println("s的阶乘是：" +  JieCheng(s));*/

        /*Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数：");
        long lon = scanner.nextLong();
        System.out.println("lon阶乘的和是：" + JieChengSum(lon));*/

        /*Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个数字：");
        int n = scanner.nextInt();
        System.out.println("s项斐波那契数是：" + FeiBo(n));*/

       /* int a = 12;
        int b = 24;
        System.out.println("两个整数之和：" + Sum(a,b));
        System.out.println("---------------------");
        double x = 12.3;
        double y = 24.3;
        double s = 36.4;
        System.out.println("三小数之和:" + Sum(x,y,s));*/

        /*int a = 12;
        int b = 22;
        System.out.println("输出两个数最大的数：" + Max(a,b));
        System.out.println("------------------------------");
        double x = 11;
        double y = 22;
        double s = 33;
        System.out.println("输出三小小数中最大的数：" + Max(x,y,s));*/

    }
    //创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
    public static int sum(int a, int b) {
        int max2 = (a > b) ? a : b;
        return max2;
    }
    // 在max3这个函数中，调用max2函数，来实现3个数的最大值计算
    public static int sum(int a, int b, int c) {
        int max3 = sum(a,b) > c ? sum(a,b) : c ;
        return max3;
    }
    //求 N 的阶乘
    public static int JieCheng(int n) {
           int ret = 1;
        for(int i = 1; i <= n; i++) {
            ret = ret * i;
        }
        return ret;
    }
    // 求1！+2！+3！+4！+........+n!的和
    public static long JieChengSum(long n) {
        long l = 1L;
        long sum = 0L;
        //控制循环n次
        for(int i = 1; i <= n; i++) {
            l *= i;//得到每个阶乘的值
            sum +=l;//每次累加
        }
        return sum;//返回最后的sum
    }
    //求斐波那契数列的第n项。(迭代实现)
    public static int FeiBo(int n) {
        //n等于0或者1直接返回n
        if(n == 0) {
            return n;
        } else if (n == 1) {
            return n;
        }else {
            int a = 1;//初始第一项
            int b = 1;//初始第二项
            int c = 0;//初始第三项
            for(int i = 2; i <= n; i++) {
                c = a + b;//前面两项相加给第三项
                a = b;//把第二项给a
                b = c;//第三项给b，一直循环往复，c是前两项的和
            }
            return c;//返回c
        }
    }
    //在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
    public static int Sum(int a, int b) {
        return a + b;
    }
    public static double Sum(double a, double b, double c) {
        return a + b + c;
    }
    //在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
    public static int Max(int a, int b) {
        return (a > b) ? a : b;
    }
    public static double Max(double a, double b, double c) {
        return Max(a,b) > c ? Max(a,b) : c;
    }
    public static double Max(double a, double b) {
        return (a > b) ? a : b;
    }
}
